Retour index

Registre d'état du 68K

Retour niveau sup

 

Le registre d'état du 68K est un registre 16 bits dont le poids faible est constitué des bits code conditions et le poids fort est utilisé pour le système.

                                                                                                                                       source Motorola

 

Codes conditions

C

à 1 si le résultat à une retenue

V

à 1 s'il y a dépassement

Z

à 1 si le résultat est nul

N

à 1 si le résultat est négatif

X

à 1 s'il y a extension de signe

Interruption

I0 I1 I2

niveau d'interruption autorisé

Mode superviseur

S

mode superviseur

Mode Trace

T

mode pas à pas

 

Les bits C, V, Z, N sont positionnés par toutes les opérations arithmétiques et logiques. Ainsi la séquence de code suivante :

move.b #$1,d0

sub.b #$1,d0

 

positionne Z à 1 et ne modifie pas les autres bits. La séquence suivante :

 

move.b #$1,d0

sub.b #$2,d0

positionne Z à 0, c à 1 et N à 1 puisque le résultat est négatif.

Il existe une instruction qui permet de positionner les bits condition sans modifier l'opérande destination. Il s'agit de l'instructions CMP. Elle réalise la différence de deux opérandes sans modifier l'opérande destination et positionne les bits C, V, Z, et N en fonction du résultat. Ainsi la séquence d'instructions suivante :

move.b #$0a,d0

move.b #$0b,d1

cmp.b d1,d0

positionne les bits condition en fonction du résultats de la différence d0 – d1 sans modifier ni le contenu de d0 ni le contenu de d1. Ici comme le résultat est négatif, N et C sont positionnés à 1. En revanche si la dernière instruction est substituée par l'instruction :

cmp.b #$0a,d0

alors seul Z sera positionné à 1 puisque le résultat est nul. Enfin cette dernière instruction est remplacé par

cmp.b #$d0,d1

comme le résultat est positif tout les bits conditions sont positionnés à 0.

Retour index

Suite